package com.yh.vo;

import com.yh.utils.Constants;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.web.multipart.MultipartFile;

import java.io.Serializable;

@Getter
@Setter
@ToString
/**
 * 用户VO类
 *
 * @author yuhuan
 * @date 2022/01/13
 * */
public class UserVO implements Serializable {
    private String userId;
    /**
     * 用户昵称
     */
    private String userName;
    /**
     * 用户账号
     */
    private String userAccount;
    /**
     * 用户密码
     */
    private String userPwd;
    /**
     * 加密后的密码
     */
    private String securityPwd;
    /**
     * 密码加密的前缀
     */
    private String pwdPrefix;
    /**
     * 用户邮箱
     */
    private String userEmail;
    /**
     * 联系电话
     */
    private String userPhone;
    /**
     * 用户权限 0:普通会员 1:管理员 2:超级管理员 3:开发组
     */
    private Integer userRole;
    /**
     * 用户头像地址
     */
    private String userHeadImg;
    /**
     * 用户的新密码
     */
    private String newPassword;

    /**
     * 用户的角色说明 如：普通会员、管理员等
     */
    private String roleExplain;
    /**
     * 用于头像的上传和下载
     */
    private MultipartFile headFile;

    public UserVO() {
        this.userRole = 0;
        this.roleExplain = "普通会员";
    }

    private void initRoleExplain() {
        if (this.userRole == Constants.LoginData.USER_ROLE) {
            roleExplain = "普通会员";
        }
        if (this.userRole == Constants.LoginData.ADMIN_ROLE) {
            roleExplain = "管理员";
        }
        if (this.userRole == Constants.LoginData.ROOT_ROLE) {
            roleExplain = "超级管理员";
        }
        if (this.userRole == Constants.LoginData.DEVELOPER_ROLE) {
            roleExplain = "开发组";
        }
    }

    public void setUserRole(int userRole) {
        this.userRole = userRole;
        this.initRoleExplain();
    }
}
